package com.cloud.drore.eboss.operation.service;


import com.cloud.drore.eboos.common.base.PagePo;
import com.cloud.drore.eboos.common.base.ResultMessage;
import com.cloud.drore.eboos.common.entity.dealer.EarliestOrderTimeVo;
import com.cloud.drore.eboos.common.entity.operation.po.FinaceFlowMeterCommonPo;
import com.cloud.drore.eboos.common.entity.operation.po.FinaceFlowMeterOperationPo;
import com.cloud.drore.eboos.common.entity.operation.po.FinaceSourseDataCommonPo;

import com.cloud.drore.eboos.common.entity.operation.vo.FinaceFlowMeterCommonVo;
import com.cloud.drore.eboos.common.entity.operation.vo.FinaceFlowMeterOperationVo;
import com.cloud.drore.eboos.common.entity.operation.vo.FinaceOperationFlowMeterDetailsVo;
import com.cloud.drore.eboos.common.entity.operation.vo.FinaceSourseDataListVo;
import com.cloud.drore.eboos.common.entity.supplier.po.FinaceOperationFlowMeterDetailsPo;



import com.cloud.drore.eboos.common.entity.supplier.vo.FinaceSupplierIncomeDetailsVo;

import com.cloud.drore.eboos.exception.BusinessException;
import com.cloud.drore.eboss.operation.entity.po.FinaceFlowMeterPo;
import com.cloud.drore.eboss.supplier.entity.po.FinaceSupplierIncomeDetailsPo;
import org.springframework.cloud.netflix.feign.FeignClient;


import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.validation.Valid;
import java.util.List;

/**
 * 浙江卓锐科技股份有限公司 版权所有 © Copyright 2018<br>
 *
 * @Description: <br>
 * @Project: eboos <br>
 * @CreateDate: Created in 2018/1/6 17:38 <br>
 * @Author: <a href="410508961@qq.com">夏凯</a>
 */
@FeignClient("eboss-dealer")
public interface IFeignFinace {


    @RequestMapping(value = "finace/getFinaceFormList", method = RequestMethod.POST)
    ResultMessage<FinaceSourseDataListVo> getFinaceFormList(List<FinaceSourseDataCommonPo> finaceSourseDataCommonPo);
    //远程调用或取收入明细信息
    @RequestMapping(value = "finace/getOperationFinaceIncomeDetailList", method = RequestMethod.POST)
    ResultMessage<List<FinaceSupplierIncomeDetailsVo>> getOperationFinaceIncomeDetailList(PagePo<FinaceSupplierIncomeDetailsPo> page);
    //"运营商查询流水统计"
    @RequestMapping(value = "meter/selectFlowMeterList", method = RequestMethod.POST)
    ResultMessage<List<FinaceFlowMeterCommonVo>> selectFlowMeterList(PagePo<FinaceFlowMeterCommonPo> page);
    //"运营商查询流水明细"
    @RequestMapping(value = "finace/queryFlowMeterListDetail", method = RequestMethod.POST)
    ResultMessage<List<FinaceOperationFlowMeterDetailsVo>> queryFlowMeterListDetail(PagePo<FinaceOperationFlowMeterDetailsPo> page);
    //供应商收单时间
    @RequestMapping(value = "finace/selectEarliestOrderTimeBySupplierId/{id}", method = RequestMethod.GET)
    ResultMessage<EarliestOrderTimeVo> selectEarliestOrderTimeBySupplierId(@PathVariable("id") Long id);
    //分销商账户充值生成流水
    @RequestMapping(value = "meter/produceAccountRechargeFlowMeter", method = RequestMethod.POST)
    ResultMessage produceAccountRechargeFlowMeter(List<FinaceFlowMeterPo> finaceFlowMeterPos);
    //运营商查询流水统计
    @RequestMapping(value = "meter/selectOperationFlowMeterList", method = RequestMethod.POST)
    ResultMessage<List<FinaceFlowMeterOperationVo>> selectOperationFlowMeterList(PagePo<FinaceFlowMeterOperationPo> page)throws BusinessException;
}
